package servidor;

import java.io.Serializable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name="ALUNO_PONTOS", schema="servidor")
public class Pontuacao implements Serializable {
	private static final long serialVersionUID = 1L;
	@Column(name="ID")
	@Id
	@GeneratedValue(strategy=GenerationType.SEQUENCE)
	private long ID;
	@Column(name="COD_ALUNO", nullable = false)
	private long raAluno;
	@Column(name="COD_ATIVIDADE", nullable = false)
	private String codAtividade;
	@Column(name="COD_DISCIPLINA", nullable = false)
	private String codDisciplina;
	@Column(name="DATA", nullable = false)
	@Temporal(TemporalType.TIMESTAMP)
	private Date dataTarefa;
	@Column(name="DESCRICAO", nullable = true)
	private String descricao;
	@Column(name="PONTOS", nullable = false)
	private double pontos;
	@Column(name="ANO_TURMA", nullable = false)
	private int anoTurma;
	@Column(name="COD_TURMA", nullable = false)
	private String codTurma;
	@Column(name="COD_LANCAMENTO", nullable = false)
	private String codLancamento;
	
	
	public String getCodLancamento() {
		return codLancamento;
	}
	public void setCodLancamento(String codLancamento) {
		this.codLancamento = codLancamento;
	}
	public int getAnoTurma() {
		return anoTurma;
	}
	public void setAnoTurma(int anoTurma) {
		this.anoTurma = anoTurma;
	}
	public String getCodTurma() {
		return codTurma;
	}
	public void setCodTurma(String codTurma) {
		this.codTurma = codTurma;
	}
	public Pontuacao(long ra, String codAtividade, String codDisciplina, String codTurma, 
					 int anoTurma, String descricao, double pontos, String codLancamento){
		Date hj = new Date();
		SimpleDateFormat formatData = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
		setRaAluno(ra);
		setCodAtividade(codAtividade);
		setCodDisciplina(codDisciplina);
		setDataTarefa(converteData(formatData.format(hj)));
		setDescricao(descricao);
		setPontos(pontos);
		setCodTurma(codTurma);
		setAnoTurma(anoTurma);
		setCodLancamento(codLancamento);
	}
	public long getRaAluno() {
		return raAluno;
	}

	public void setRaAluno(long raAluno) {
		this.raAluno = raAluno;
	}

	public String getCodAtividade() {
		return codAtividade;
	}

	public void setCodAtividade(String codAtividade) {
		this.codAtividade = codAtividade;
	}

	public String getCodDisciplina() {
		return codDisciplina;
	}

	public void setCodDisciplina(String codDisciplina) {
		this.codDisciplina = codDisciplina;
	}

	public Date getDataTarefa() {
		return dataTarefa;
	}

	public void setDataTarefa(Date dataTarefa) {
		this.dataTarefa = dataTarefa;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public double getPontos() {
		return pontos;
	}

	public void setPontos(double pontos) {
		this.pontos = pontos;
	}

	public long getID() {
		return ID;
	}
	
	public String toString(){
		return"||"+
		getRaAluno()+'|'+
		getCodAtividade()+'|'+
		getCodDisciplina()+'|'+
		getDataTarefa()+'|'+
		getDescricao()+'|'+
		getPontos()+"||"; 
	}
	
	public Pontuacao() {
	}
	
	private Date converteData(String data) {  
	    Date date = null;  
	    try {  
	        SimpleDateFormat dtOutput = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");  
	        date = dtOutput.parse(data);
	    }
	    catch (ParseException e) {  
	        e.printStackTrace();  
	    }  
	    return date;  
	}
}
